请问语句line[len - 1] = '\0';是不是多余了?
来源:百度知道 编辑:UC知道 时间:2024/07/08 18:44:57
程序如下
/*读取输入行*/
int readline (char *lineptr[],int maxlines)
{
int len,nlines;
char *p,line [maxlen];
nlines = 0;
while ((len = getline(line,maxlen)) > 0 )
if (nlines >= maxlines || (p = alloc(len)) == null)
return -1;
else {
line[len - 1] = '\0';
strcpy(p,line);
lineptr[nlines++] = p;
}
teturn lines;
}
请问int readline (char *lineptr[],int maxlines)
{
int len,nlines;
char *p,line [maxlen];
nlines = 0;
while ((len = getline(line,maxlen)) > 0 )
if (nlines >= maxlines || (p = alloc(len)) == null)
return -1;
else {
line[len - 1] = '\0';
strcpy(p,line);
lineptr[nlines++] = p;
}
teturn lines;
}
不好意思,程序不小心复制了两遍。
/*读取输入行*/
int readline (char *lineptr[],int maxlines)
{
int len,nlines;
char *p,line [maxlen];
nlines = 0;
while ((len = getline(line,maxlen)) > 0 )
if (nlines >= maxlines || (p = alloc(len)) == null)
return -1;
else {
line[len - 1] = '\0';
strcpy(p,line);
lineptr[nlines++] = p;
}
teturn lines;
}
请问int readline (char *lineptr[],int maxlines)
{
int len,nlines;
char *p,line [maxlen];
nlines = 0;
while ((len = getline(line,maxlen)) > 0 )
if (nlines >= maxlines || (p = alloc(len)) == null)
return -1;
else {
line[len - 1] = '\0';
strcpy(p,line);
lineptr[nlines++] = p;
}
teturn lines;
}
不好意思,程序不小心复制了两遍。
你看看这getline怎么处理的吧(在读到maxlen的时候会不会在后面填0?)。。无论如何我觉得 line[len-1]的做法不是很好, 如果getline确实不会再后面填写0, 你可以分配的时候多分配一格空间, 事先写好0, 这样可以确保字符串成立, 并且不会因为数据稍多就丢掉一个
另外你这里还有一点问题是,用alloc是不对的,要用malloc。 alloc分配的空间在函数返回后自动free掉。 现在alloc基本上没什么用了
\0 是空字符 你说多余么?
请问vb中if len(userinput) <> 0 then 语句中的<>是什么意思啊?
请问punch line是什么意思?
请问line camera是什么东西?
请问7 line de serious是什么意思
请问down the line 什么意思
请问afxwin1.inl Line:24 是什么错误?
请问裴涩琪参加LINE UP的是哪期吖?
请问C语言中单链表中 list->len和list.len 有什么不同,问什么有时后两者不能混用,谢谢
请问VB中text1.selstart=len(text2.text)是什么意思啊?
INSERT INTO 语句的语法错误 web\conn.asp, line 22